package cl.ncx.cmvrc.persistence.bean.autoridad;

import java.util.List;

import javax.ejb.EJBException;

import cl.ncx.cmvrc.persistence.base.entities.personas.Autoridad;
import cl.ncx.cmvrc.persistence.base.entities.personas.InstitucionAutoridad;
import cl.ncx.cmvrc.persistence.base.entities.personas.Persona;

public interface IAutoridadSession {
	
	public static final String JNDI_NAME = "AutoridadSessionBean";
	
	/**
	 * Metodo que permitira el ingreso de una nueva autoridad
	 * @return
	 * @throws EJBException
	 */
	public Autoridad ingresarNuevaAutoridad(Autoridad autoridad)throws EJBException;
	
	/**
	 * Metodo que permitira la actualizacion de una autoridad
	 * @throws EJBException
	 */
	public void modificaAutoridad(Autoridad autoridad)throws EJBException;
	
	/**
	 * Metodo que permitira eliminar una autoridad
	 * @throws EJBException
	 */
	public void deleteAutoridad(Autoridad autoridad)throws EJBException;
	
	/**
	 * Metodo que permite obtener los datos de la autoridad
	 * @param autoridad
	 * @throws EJBException
	 */
	public Autoridad findAutoridadById(Integer autoridadId)throws EJBException;
	
	/**
	 * Metodo que permite obtener todas las autoridades
	 * @return
	 * @throws EJBException
	 */
	public List<Autoridad> findAllAutoridades()throws EJBException;
	/**
	 * Metodo que permitira verificar si existe una autoridad
	 * @param autoridad
	 * @return
	 * @throws EJBException
	 */
	public Autoridad verificaSiExisteAutoridad(Autoridad autoridad)throws EJBException;
	/**
	 * Metodo que permitira el ingreso de una nueva institucion
	 * @param institucionAutoridad
	 * @return
	 * @throws EJBException
	 */
	public InstitucionAutoridad ingresarNuevaInstitucion(InstitucionAutoridad institucionAutoridad)throws EJBException;
	
	/**
	 * Metodo que permitira la modificacion de una institucion
	 * @param institucionAutoridad
	 * @throws EJBException
	 */
	public void modificaInstitucion(InstitucionAutoridad institucionAutoridad)throws EJBException;
	
	/**
	 * Metodo que permitira la eliminacion de una institucion
	 * @param institucionAutoridad
	 * @throws EJBException
	 */
	public void eliminaInstitucion(InstitucionAutoridad institucionAutoridad)throws EJBException;
	
	/**
	 * Metodo que permitira obtener una institucion a travez del id
	 * @param institucionID
	 * @return
	 * @throws EJBException
	 */
	public InstitucionAutoridad findInstitucionById(Integer institucionID)throws EJBException;

}
